#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include "basestation.h"

int main()
{
  int n,m,h,i,j,k,l,t1,t2;
  float L,M;
  scanf("%d %d",&n,&m);
  float * basex=malloc(n*sizeof(float));
  float * basey=malloc(n*sizeof(float));
  float * bar1x=malloc(m*sizeof(float));
  float * bar1y=malloc(m*sizeof(float));
  float * bar2x=malloc(m*sizeof(float));
  float * bar2y=malloc(m*sizeof(float));
  int **A=malloc(n*sizeof(int *));
  int *U=malloc(n*sizeof(int));
  
  for(i=0;i<n;i++)
  {
    scanf("%f %f",&basex[i],&basey[i]);
    A[i]=malloc(n*sizeof(int));
    for(j=0;j<n;j++)
      A[i][j]=0;
    U[i]=0;
  }
    
  for(i=0;i<m;i++)
    scanf("%f %f %f %f",&bar1x[i],&bar1y[i],&bar2x[i],&bar2y[i]);
  
  U[0]=1;
  while(1)
  {
    M=99999999;
    for(i=0;i<n;i++)
    {
      if(U[i]!=0)
      {
        for(j=0;j<n;j++)
        {
         if(U[j]==0)
         {
           l=0;
           for(k=0;k<m;k++)
           {
             if(Intersect(basex[i],basey[i],basex[j],basey[j],bar1x[k],bar1y[k],bar2x[k],bar2y[k]))
             {
               l++;
               break;
             }
           }
           if(l==0)
           {
             L=(basex[i]-basex[j])*(basex[i]-basex[j])+(basey[i]-basey[j])*(basey[i]-basey[j]); 
             if(L<M)
             {
              t1=i;
              t2=j;
              M=L;
             }
           }
         }
       }
     }
   }
   U[t2]=1;
   A[t1][t2]=1;
   h=0;
   for(i=0;i<n;i++)
   {
    if(U[i]==0)
    h++;
   }
   if(h==0)
    break;
  }
   M=0;
   for(i=0;i<n;i++)
   {
     for(j=0;j<n;j++)
     {
      if(A[i][j]) 
      {
        L=(basex[i]-basex[j])*(basex[i]-basex[j])+(basey[i]-basey[j])*(basey[i]-basey[j]);
        M=M+sqrt(L);
      }
     }
   }
   printf("%.2f\n",M);
}